/* For detailed instructions, see README file */



OPTIONS SOURCE MACROGEN SYMBOLGEN MPRINT COMPRESS=YES REUSE=YES SORTSIZE= MAX;



/*=========================================*/
/*Select path where files are saved*/
libname OP "INSERT PATH";
/*Select path to save logs*/
%let LOG_PATH=INSERT PATH\Table1.log;
options dlcreatedir; 
%PUT &LOG_PATH;
/*=========================================*/








proc printto log="&LOG_PATH" new;
run;
FOOTNOTE " ";
ODS TITLE " ";
ODS GRAPHICS OFF;
ODS NORESULTS;
ODS SELECT NONE;
/*=========================================*/

DATA TABLE_DATA;
	SET OP.OPRA_Pseudo;


	DAYS_EXP = EXP(LOG_DAYS_EXP);
	S_D_VOL = D_VOL/1000;
	MCAP_B = EXP(LOG_MCAP);
	S_D_VOL = D_VOL/1000;



	RUN;





PROC SORT DATA=TABLE_DATA NODUPKEY OUT=STOCK_DATA (KEEP=SYMBOL_ONLY DATE STOCK_MIDPOINT MCAP_B TIME);BY SYMBOL_ONLY DATE TIME;RUN;

DATA STOCK_DATA;
	SET STOCK_DATA;
	BY SYMBOL_ONLY DATE TIME;
	IF LAST.DATE;
RUN;





PROC SORT DATA=TABLE_DATA; BY DATE;RUN;
ods select none;

proc tabulate data=TABLE_DATA format=8.2 OUT=RESULT_PImp_C_DAILY( 
	RENAME = (
	PImp_C_Mean =  PImp_C

	)
	)
	
;

 var PImp_C;
 BY DATE;

 table PImp_C*(MEAN)  ;
 RUN;


 
proc tabulate data=RESULT_PImp_C_DAILY format=8.2 OUT=RESULT_PImp_C( 
	RENAME = (
	PImp_C_Mean = Mean
	PImp_C_Std = St_dev
	PImp_C_P1 = P_1
	PImp_C_P5 = P_5
	PImp_C_P25 = P_25
	PImp_C_P50 = P_50
	PImp_C_P75 = P_75
	PImp_C_P95 = P_95
	PImp_C_P99 = P_99
	)
	)
	
;

 var PImp_C;

 table PImp_C*(MEAN) PImp_C*(STD) PImp_C*(P1) PImp_C*(P5) PImp_C*(P25) PImp_C*(P50) PImp_C*(P75) PImp_C*(P95) PImp_C*(P99) ;
 RUN;
 ods select none;



PROC SORT DATA=TABLE_DATA; BY DATE;RUN;
proc tabulate data=TABLE_DATA format=8.2 OUT=RESULT_CALL_daily( 
	RENAME = (
	D_VOL_PctSum_0_D_VOL = PCTSUM
	
	)
	)
	
;

class CALL_IND;
 var D_VOL;
 BY DATE;

 table CALL_IND*D_VOL*(PCTSUM) ;
 

run;
DATA RESULT_CALL_DAILY;
	SET RESULT_CALL_DAILY;
	DROP _TYPE_ _PAGE_ _TABLE_;
RUN;

proc tabulate data=RESULT_CALL_daily(WHERE=(CALL_IND=1)) format=8.2 OUT=RESULT_CALL( 
	RENAME = (
	PCTSUM_Mean = Mean
	PCTSUM_Std = St_dev
	PCTSUM_P1 = P_1
	PCTSUM_P5 = P_5
	PCTSUM_P25 = P_25
	PCTSUM_P50 = P_50
	PCTSUM_P75 = P_75
	PCTSUM_P95 = P_95
	PCTSUM_P99 = P_99
	)
	)
	
;


 var PCTSUM;

 table PCTSUM*(MEAN) PCTSUM*(STD) PCTSUM*(P1) PCTSUM*(P5) PCTSUM*(P25) PCTSUM*(P50) PCTSUM*(P75) PCTSUM*(P95) PCTSUM*(P99) ;
 

run;
proc tabulate data=RESULT_CALL_daily(WHERE=(CALL_IND=0)) format=8.2 OUT=RESULT_PUT( 
	RENAME = (
	PCTSUM_Mean = Mean
	PCTSUM_Std = St_dev
	PCTSUM_P1 = P_1
	PCTSUM_P5 = P_5
	PCTSUM_P25 = P_25
	PCTSUM_P50 = P_50
	PCTSUM_P75 = P_75
	PCTSUM_P95 = P_95
	PCTSUM_P99 = P_99
	)
	)
	
;


 var PCTSUM;

 table PCTSUM*(MEAN) PCTSUM*(STD) PCTSUM*(P1) PCTSUM*(P5) PCTSUM*(P25) PCTSUM*(P50) PCTSUM*(P75) PCTSUM*(P95) PCTSUM*(P99) ;
 
run;


 PROC SORT DATA=TABLE_DATA; BY DATE;RUN;
proc tabulate data=TABLE_DATA format=8.2 OUT=RESULT_ABS_DELTA_DAILY( 
	RENAME = (
	ABS_DELTA_Mean =  ABS_DELTA

	)
	)
	
;

 var ABS_DELTA;
 BY DATE;

 table ABS_DELTA*(MEAN)  ;
 RUN;

 
proc tabulate data=RESULT_ABS_DELTA_DAILY format=8.2 OUT=RESULT_ABS_DELTA( 
	RENAME = (
	ABS_DELTA_Mean = Mean
	ABS_DELTA_Std = St_dev
	ABS_DELTA_P1 = P_1
	ABS_DELTA_P5 = P_5
	ABS_DELTA_P25 = P_25
	ABS_DELTA_P50 = P_50
	ABS_DELTA_P75 = P_75
	ABS_DELTA_P95 = P_95
	ABS_DELTA_P99 = P_99
	)
	)
	
;

 var ABS_DELTA;

 table ABS_DELTA*(MEAN) ABS_DELTA*(STD) ABS_DELTA*(P1) ABS_DELTA*(P5) ABS_DELTA*(P25) ABS_DELTA*(P50) ABS_DELTA*(P75) ABS_DELTA*(P95) ABS_DELTA*(P99) ;
 RUN;


proc tabulate data=TABLE_DATA format=8.2 OUT=RESULT_DAYS_EXP_DAILY( 
	RENAME = (
	DAYS_EXP_Mean =  DAYS_EXP

	)
	)
	
;

 var DAYS_EXP;
 BY DATE;

 table DAYS_EXP*(MEAN)  ;
 RUN;
 
proc tabulate data=RESULT_DAYS_EXP_DAILY format=8.2 OUT=RESULT_DAYS_EXP( 
	RENAME = (
	DAYS_EXP_Mean = Mean
	DAYS_EXP_Std = St_dev
	DAYS_EXP_P1 = P_1
	DAYS_EXP_P5 = P_5
	DAYS_EXP_P25 = P_25
	DAYS_EXP_P50 = P_50
	DAYS_EXP_P75 = P_75
	DAYS_EXP_P95 = P_95
	DAYS_EXP_P99 = P_99
	)
	)
	
;

 var DAYS_EXP;

 table DAYS_EXP*(MEAN) DAYS_EXP*(STD) DAYS_EXP*(P1) DAYS_EXP*(P5) DAYS_EXP*(P25) DAYS_EXP*(P50) DAYS_EXP*(P75) DAYS_EXP*(P95) DAYS_EXP*(P99) ;
 RUN;


 
proc tabulate data=TABLE_DATA format=8.2 OUT=RESULT_OPTION_MIDPOINT_DAILY( 
	RENAME = (
	OPTION_MIDPOINT_Mean =  OPTION_MIDPOINT

	)
	)
	
;

 var OPTION_MIDPOINT;
 BY DATE;

 table OPTION_MIDPOINT*(MEAN)  ;
 RUN;
 
proc tabulate data=RESULT_OPTION_MIDPOINT_DAILY format=8.2 OUT=RESULT_OPTION_MIDPOINT( 
	RENAME = (
	OPTION_MIDPOINT_Mean = Mean
	OPTION_MIDPOINT_Std = St_dev
	OPTION_MIDPOINT_P1 = P_1
	OPTION_MIDPOINT_P5 = P_5
	OPTION_MIDPOINT_P25 = P_25
	OPTION_MIDPOINT_P50 = P_50
	OPTION_MIDPOINT_P75 = P_75
	OPTION_MIDPOINT_P95 = P_95
	OPTION_MIDPOINT_P99 = P_99
	)
	)
	
;

 var OPTION_MIDPOINT;

 table OPTION_MIDPOINT*(MEAN) OPTION_MIDPOINT*(STD) OPTION_MIDPOINT*(P1) OPTION_MIDPOINT*(P5) OPTION_MIDPOINT*(P25) OPTION_MIDPOINT*(P50) OPTION_MIDPOINT*(P75) OPTION_MIDPOINT*(P95) OPTION_MIDPOINT*(P99) ;
 RUN;


proc tabulate data=TABLE_DATA format=8.2 OUT=RESULT_D_VOL( 
	RENAME = (
	S_D_VOL_Mean = Mean
	S_D_VOL_Std = St_dev
	S_D_VOL_P1 = P_1
	S_D_VOL_P5 = P_5
	S_D_VOL_P25 = P_25
	S_D_VOL_P50 = P_50
	S_D_VOL_P75 = P_75
	S_D_VOL_P95 = P_95
	S_D_VOL_P99 = P_99
	)
	)
	
;

 var S_D_VOL;

 table S_D_VOL*(MEAN) S_D_VOL*(STD) S_D_VOL*(P1) S_D_VOL*(P5) S_D_VOL*(P25) S_D_VOL*(P50) S_D_VOL*(P75) S_D_VOL*(P95) S_D_VOL*(P99);
 RUN;




proc tabulate data=TABLE_DATA format=8.2 OUT=RESULT_s_vol( 
	RENAME = (
	s_vol_Mean = Mean
	s_vol_Std = St_dev
	s_vol_P1 = P_1
	s_vol_P5 = P_5
	s_vol_P25 = P_25
	s_vol_P50 = P_50
	s_vol_P75 = P_75
	s_vol_P95 = P_95
	s_vol_P99 = P_99
	)
	)
	
;

 var s_vol;

 table s_vol*(MEAN) s_vol*(STD) s_vol*(P1) s_vol*(P5) s_vol*(P25) s_vol*(P50) s_vol*(P75) s_vol*(P95) s_vol*(P99);
 RUN;


proc sort data=Stock_data;by date;run;
proc tabulate data=Stock_data format=8.2 OUT=RESULT_stock_midpoint_DAILY( 
	RENAME = (
	STOCK_MIDPOINT_Mean =  STOCK_MIDPOINT

	)
	)
	
;

 var STOCK_MIDPOINT;
 BY DATE;

 table STOCK_MIDPOINT*(MEAN)  ;
 RUN;
 
proc tabulate data=RESULT_stock_midpoint_DAILY format=8.2 OUT=RESULT_stock_midpoint( 
	RENAME = (
	STOCK_MIDPOINT_Mean = Mean
	STOCK_MIDPOINT_Std = St_dev
	STOCK_MIDPOINT_P1 = P_1
	STOCK_MIDPOINT_P5 = P_5
	STOCK_MIDPOINT_P25 = P_25
	STOCK_MIDPOINT_P50 = P_50
	STOCK_MIDPOINT_P75 = P_75
	STOCK_MIDPOINT_P95 = P_95
	STOCK_MIDPOINT_P99 = P_99
	)
	)
	
;

 var STOCK_MIDPOINT;

 table STOCK_MIDPOINT*(MEAN) STOCK_MIDPOINT*(STD) STOCK_MIDPOINT*(P1) STOCK_MIDPOINT*(P5) STOCK_MIDPOINT*(P25) STOCK_MIDPOINT*(P50) STOCK_MIDPOINT*(P75) STOCK_MIDPOINT*(P95) STOCK_MIDPOINT*(P99) ;
 RUN;


 
proc tabulate data=Stock_data format=8.2 OUT=RESULT_MCAP_B( 
	RENAME = (
	MCAP_B_Mean = Mean
	MCAP_B_Std = St_dev
	MCAP_B_P1 = P_1
	MCAP_B_P5 = P_5
	MCAP_B_P25 = P_25
	MCAP_B_P50 = P_50
	MCAP_B_P75 = P_75
	MCAP_B_P95 = P_95
	MCAP_B_P99 = P_99
	)
	)
	
;

 var MCAP_B;

 table MCAP_B*(MEAN) MCAP_B*(STD) MCAP_B*(P1) MCAP_B*(P5) MCAP_B*(P25) MCAP_B*(P50) MCAP_B*(P75) MCAP_B*(P95) MCAP_B*(P99) ;
 RUN;



PROC SQL;
		CREATE TABLE DAILY_TRADE_DATA
		AS SELECT 
		COUNT(*)/1000 AS D_COUNT_TRADE,
		SUM(S_VOL)/10000 AS D_SIZE_VOLUME,
		SUM(D_VOL)/1000000000 AS D_B_DOLLAR_VOLUME,
		SUM(AUCTION_IND)/1000 AS NUMBER_AUCTIONS
		FROM TABLE_DATA
		GROUP BY DATE;
	QUIT;



 
proc tabulate data=DAILY_TRADE_DATA format=8.2 OUT=RESULT_D_COUNT_TRADE( 
	RENAME = (
	 D_COUNT_TRADE_Mean = Mean
	 D_COUNT_TRADE_Std = St_dev
	 D_COUNT_TRADE_P1 = P_1
	 D_COUNT_TRADE_P5 = P_5
	 D_COUNT_TRADE_P25 = P_25
	 D_COUNT_TRADE_P50 = P_50
	 D_COUNT_TRADE_P75 = P_75
	 D_COUNT_TRADE_P95 = P_95
	 D_COUNT_TRADE_P99 = P_99
	)
	)
	
;

 var D_COUNT_TRADE;

 table D_COUNT_TRADE*(MEAN) D_COUNT_TRADE*(STD) D_COUNT_TRADE*(P1) D_COUNT_TRADE*(P5) D_COUNT_TRADE*(P25) D_COUNT_TRADE*(P50) D_COUNT_TRADE*(P75) D_COUNT_TRADE*(P95) D_COUNT_TRADE*(P99) ;
 RUN;


 
proc tabulate data=DAILY_TRADE_DATA format=8.2 OUT=RESULT_NUMBER_AUCTIONS( 
	RENAME = (
	NUMBER_AUCTIONS_Mean = Mean
	NUMBER_AUCTIONS_Std = St_dev
	NUMBER_AUCTIONS_P1 = P_1
	NUMBER_AUCTIONS_P5 = P_5
	NUMBER_AUCTIONS_P25 = P_25
	NUMBER_AUCTIONS_P50 = P_50
	NUMBER_AUCTIONS_P75 = P_75
	NUMBER_AUCTIONS_P95 = P_95
	NUMBER_AUCTIONS_P99 = P_99
	)
	)
	
;

 var NUMBER_AUCTIONS;

 table NUMBER_AUCTIONS*(MEAN) NUMBER_AUCTIONS*(STD) NUMBER_AUCTIONS*(P1) NUMBER_AUCTIONS*(P5) NUMBER_AUCTIONS*(P25) NUMBER_AUCTIONS*(P50) NUMBER_AUCTIONS*(P75) NUMBER_AUCTIONS*(P95) NUMBER_AUCTIONS*(P99) ;
 RUN;



 
proc tabulate data=DAILY_TRADE_DATA format=8.2 OUT=RESULT_D_B_DOLLAR_VOLUME( 
	RENAME = (
	D_B_DOLLAR_VOLUME_Mean = Mean
	D_B_DOLLAR_VOLUME_Std = St_dev
	D_B_DOLLAR_VOLUME_P1 = P_1
	D_B_DOLLAR_VOLUME_P5 = P_5
	D_B_DOLLAR_VOLUME_P25 = P_25
	D_B_DOLLAR_VOLUME_P50 = P_50
	D_B_DOLLAR_VOLUME_P75 = P_75
	D_B_DOLLAR_VOLUME_P95 = P_95
	D_B_DOLLAR_VOLUME_P99 = P_99
	)
	)
	
;

 var D_B_DOLLAR_VOLUME;

 table D_B_DOLLAR_VOLUME*(MEAN) D_B_DOLLAR_VOLUME*(STD) D_B_DOLLAR_VOLUME*(P1) D_B_DOLLAR_VOLUME*(P5) D_B_DOLLAR_VOLUME*(P25) D_B_DOLLAR_VOLUME*(P50) D_B_DOLLAR_VOLUME*(P75) D_B_DOLLAR_VOLUME*(P95) D_B_DOLLAR_VOLUME*(P99) ;
 RUN;



 
proc tabulate data=DAILY_TRADE_DATA format=8.2 OUT=RESULT_D_SIZE_VOLUME( 
	RENAME = (
	D_SIZE_VOLUME_Mean = Mean
	D_SIZE_VOLUME_Std = St_dev
	D_SIZE_VOLUME_P1 = P_1
	D_SIZE_VOLUME_P5 = P_5
	D_SIZE_VOLUME_P25 = P_25
	D_SIZE_VOLUME_P50 = P_50
	D_SIZE_VOLUME_P75 = P_75
	D_SIZE_VOLUME_P95 = P_95
	D_SIZE_VOLUME_P99 = P_99
	)
	)
	
;

 var D_SIZE_VOLUME;

 table D_SIZE_VOLUME*(MEAN) D_SIZE_VOLUME*(STD) D_SIZE_VOLUME*(P1) D_SIZE_VOLUME*(P5) D_SIZE_VOLUME*(P25) D_SIZE_VOLUME*(P50) D_SIZE_VOLUME*(P75) D_SIZE_VOLUME*(P95) D_SIZE_VOLUME*(P99) ;
 RUN;









 
proc sort data=TABLE_DATA;BY DATE;RUN;
proc tabulate data=TABLE_DATA format=8.2 OUT=QuotedSpread_C_DAILY( 
	RENAME = (
	QuotedSpread_C_Mean =  QuotedSpread_C

	)
	)
	
;

 var QuotedSpread_C;
 BY DATE;

 table QuotedSpread_C*(MEAN)  ;
 RUN;
proc tabulate data=QuotedSpread_C_DAILY format=8.2 OUT=RESULT_QuotedSpread_C( 
	RENAME = (
	QuotedSpread_C_Mean = Mean
	QuotedSpread_C_Std = St_dev
	QuotedSpread_C_P1 = P_1
	QuotedSpread_C_P5 = P_5
	QuotedSpread_C_P25 = P_25
	QuotedSpread_C_P50 = P_50
	QuotedSpread_C_P75 = P_75
	QuotedSpread_C_P95 = P_95
	QuotedSpread_C_P99 = P_99
	)
	)
	
;

 var QuotedSpread_C;

 table QuotedSpread_C*(MEAN) QuotedSpread_C*(STD) 
QuotedSpread_C*(P1) QuotedSpread_C*(P5) QuotedSpread_C*(P25) 
QuotedSpread_C*(P50) QuotedSpread_C*(P75) QuotedSpread_C*(P95) QuotedSpread_C*(P99);
 RUN;


 
 
proc sort data=TABLE_DATA;BY DATE;RUN;
proc tabulate data=TABLE_DATA format=8.2 OUT=EffectiveSpread_C_DAILY( 
	RENAME = (
	EffectiveSpread_C_Mean =  EffectiveSpread_C

	)
	)
	
;

 var EffectiveSpread_C;
 BY DATE;

 table EffectiveSpread_C*(MEAN)  ;
 RUN;
proc tabulate data=EffectiveSpread_C_DAILY format=8.2 OUT=RESULT_EffectiveSpread_C( 
	RENAME = (
	EffectiveSpread_C_Mean = Mean
	EffectiveSpread_C_Std = St_dev
	EffectiveSpread_C_P1 = P_1
	EffectiveSpread_C_P5 = P_5
	EffectiveSpread_C_P25 = P_25
	EffectiveSpread_C_P50 = P_50
	EffectiveSpread_C_P75 = P_75
	EffectiveSpread_C_P95 = P_95
	EffectiveSpread_C_P99 = P_99
	)
	)
	
;

 var EffectiveSpread_C;

 table EffectiveSpread_C*(MEAN) EffectiveSpread_C*(STD) 
EffectiveSpread_C*(P1) EffectiveSpread_C*(P5) EffectiveSpread_C*(P25) 
EffectiveSpread_C*(P50) EffectiveSpread_C*(P75) EffectiveSpread_C*(P95) EffectiveSpread_C*(P99);
 RUN;




 proc sort data=TABLE_DATA;BY DATE;RUN;
proc tabulate data=TABLE_DATA format=8.2 OUT=MMRev_C_DAILY( 
	RENAME = (
	MMRev_C_Mean =  MMRev_C

	)
	)
	
;

 var MMRev_C;
 BY DATE;

 table MMRev_C*(MEAN)  ;
 RUN;
proc tabulate data=MMRev_C_DAILY format=8.2 OUT=RESULT_MMRev_C( 
	RENAME = (
	MMRev_C_Mean = Mean
	MMRev_C_Std = St_dev
	MMRev_C_P1 = P_1
	MMRev_C_P5 = P_5
	MMRev_C_P25 = P_25
	MMRev_C_P50 = P_50
	MMRev_C_P75 = P_75
	MMRev_C_P95 = P_95
	MMRev_C_P99 = P_99
	)
	)
	
;

 var MMRev_C;

 table MMRev_C*(MEAN) MMRev_C*(STD) 
MMRev_C*(P1) MMRev_C*(P5) MMRev_C*(P25) 
MMRev_C*(P50) MMRev_C*(P75) MMRev_C*(P95) MMRev_C*(P99);
 RUN;



data RESULT_D_COUNT_SYMBOL;
	MEAN = .;
RUN;
 


DATA RESULT;
	SET     

	RESULT_QuotedSpread_C
	RESULT_EffectiveSpread_C
	RESULT_PImp_C
	RESULT_MMRev_C
	RESULT_D_COUNT_TRADE
	RESULT_NUMBER_AUCTIONS
	RESULT_S_VOL
	RESULT_D_VOL
	RESULT_D_B_DOLLAR_VOLUME	
	RESULT_D_COUNT_SYMBOL
	RESULT_option_midpoint
	RESULT_CALL
	RESULT_PUT
	RESULT_DAYS_EXP
	RESULT_ABS_DELTA
	RESULT_stock_midpoint
	RESULT_MCAP_B 
	
	;
	

	DROP _TABLE_ _PAGE_ _TYPE_;

	IF _N_=1 THEN
	Variable = put("Quoted Spread - Cents",$120.);
	IF _N_=2 THEN
	Variable = put("Effective Spread - Cents",$120.);
	IF _N_=3 THEN
	Variable =  put("Price Improvement - Cents",$120.);
	IF _N_=4 THEN
	Variable =  put("Market Maker Revenues - Cents",$120.);
	IF _N_=5 THEN
	Variable = put("Trades - 1,000s/day",$120.);
	IF _N_=6 THEN
	Variable = put("Number of auctions - 1,000s/day",$120.);
	IF _N_=7 THEN
	Variable =  put("Trade size - Contracts",$120.);
	IF _N_=8 THEN
	Variable =  put("Trade size - 1,000s \$",$120.);
	IF _N_=9 THEN
	Variable = put("Dollar volume - Billions \$/day",$120.);
	IF _N_=10 THEN
	Variable = put("Options traded - anonymized",$120.);
	IF _N_=11 THEN
	Variable =  put("Trade Price - $",$120.);
	IF _N_=12 THEN
	Variable = put("Call Volume - %",$120.);
	IF _N_=13 THEN
	Variable = put("Put Volume - %",$120.);
	IF _N_=14 THEN
	Variable =  put("Days-to-expiration - Days",$120.);
	IF _N_=15 THEN
	Variable =  put("|Delta|  ",$120.);
	IF _N_=16 THEN
	Variable =  put("Stock Midpoint - $",$120.);
	IF _N_=17 THEN
	Variable = put("Market Capitalization & \$ Billion",$120.);
	

	LABEL Mean = "Mean";
	LABEL St_dev = "St.dev";
	LABEL P_1 = "1%";
	LABEL P_5 = "5%";
	LABEL P_25 = "25%";
	LABEL P_50 = "Median";
	LABEL P_75 = "75%";
	LABEL P_95 = "95%";
	LABEL P_99 = "99%";
	
	
	
run;



ODS GRAPHICS OFF;
ODS RESULTS;
ODS SELECT ALL;
ODS TITLE "TABLE 1: Descriptive Statistics (Pseudo Data)";
FOOTNOTE "This table presents descriptive statistics computed using pseudo OPRA data 
 provided online. Option symbols have been removed due to data restrictions; therefore,  
 the number of options traded is set to missing.";
PROC REPORT data=RESULT;
 COLUMNS Variable Mean St_dev  P_5 P_25 P_50 P_75 P_95 ;
 DEFINE Variable  / DISPLAY "Variable" format =$40.;
 DEFINE Mean / DISPLAY "MEAN" format =8.2;
 DEFINE St_dev / DISPLAY "St.dev" format =8.2;
 DEFINE P_5 / DISPLAY "5\%" format =8.2;
 DEFINE P_25 / DISPLAY "25\%" format =8.2;
 DEFINE P_50 / DISPLAY "50\%" format =8.2;
 DEFINE P_75 / DISPLAY "75\%" format =8.2;
 DEFINE P_95 / DISPLAY "95\%" format =8.2;

 RUN; 
/*=========================================*/
FOOTNOTE " ";
ODS TITLE " ";







proc printto log=log;
run;

